package tripmaker
package movimientos

object Lugar {
  trait Aeropuerto extends Lugar {
    def nombre: String = "";
    override def toString = ("Aeropuerto " + nombre).trim + " (" + super.toString + ")"
  }
  trait Terminal extends Lugar {
    override def toString = "Terminal " + super.toString
  }
  trait Puerto extends Lugar {
    override def toString = "Puerto " + super.toString
  }
  object Puerto extends Lugar {
    def apply(nombre: String): Puerto = new Puerto {
      override def toString = "Puerto " + nombre
    }
  }
  trait Estación extends Lugar {
    override def toString = "Estación " + super.toString
  }

  object MVD extends Aeropuerto {
    override def nombre = "Carrasco"
  }
  object SCL extends Aeropuerto
  object LSC extends Aeropuerto
  object LIM extends Aeropuerto {
    override def nombre = "Jorge Chávez"
  }

  object Terminal extends Terminal {
    override def toString = "Terminal"
  }
  object TresCruces extends Terminal
  object PuertoMadero extends Terminal
  object Retiro extends Terminal
  object TerminalTerrestre extends Terminal {
    override def toString = splitCamelCase(id)
  }
  
  object Hotel extends Lugar
  object ADefinir extends Lugar
  
  
  
  object PuertaDelSol extends Lugar
  
  
  def apply(nombre: String): Lugar = new Lugar {
    override def toString = nombre
  }
}

trait Lugar extends util.ObjectToString {

}